--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
android/README.md e330e7b3eefb2ee2743a2b314ee57d1556c2f270 (e330e7b3) Text, 1.75 KB
MeshChatX Android App
This directory contains the Android app build configuration using Chaquopy to embed the Python MeshChatX server.
Architecture
The app uses a WebView to display the existing Vue.js frontend. The Python server runs in the background via Chaquopy and serves the web interface on T383838https://127.0.0.1:8000.
Updating Android Python ABI Wheels (Python 3.11)
Use this workflow when a dependency (for example T383838cryptography) requires custom Android wheels for T383838arm64-v8a and T383838x86_64.
1. Build wheels in a Podman Python 3.11 container to avoid host Python mismatches:
• Use T383838docker.io/library/python:3.11-bookworm.
• Mount project root to T383838/work and Android SDK to T383838/opt/android-sdk.
• Export T383838ANDROID_HOME and T383838ANDROID_SDK_ROOT to T383838/opt/android-sdk.
• Example container entry:
T383838podman run --rm --network host -e ANDROID_HOME=/opt/android-sdk -e ANDROID_SDK_ROOT=/opt/android-sdk -v "/opt/android-sdk:/opt/android-sdk" -v "<repo>:/work" -w /work docker.io/library/python:3.11-bookworm bash
2. Keep custom Chaquopy recipes in T383838android/chaquopy-recipes/<package>-<major>/:
• Define package/version in T383838meta.yaml.
• Store source patches in T383838patches/.
3. Build both ABIs with Chaquopy T383838build-wheel.py and place final wheels in T383838android/vendor/.
4. Update T383838android/app/build.gradle T383838pip installs to the new pinned version.
5. Rebuild with T383838./gradlew assembleDebug and verify split outputs:
• T383838app-arm64-v8a-debug.apk
• T383838app-x86_64-debug.apk
• T383838app-universal-debug.apk
Notes:
• For Rust-backed wheels (such as modern T383838cryptography), build inside the container with Rust toolchain available.
• Keep recipe files and patches versioned; keep generated build artifacts untracked.
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────